ip-filter
Validates valid IPs (IPv4 and IPv6) using micromatch - glob patterns,
RegExp, string or array of globs. If match returns the IP, otherwise null.
Please consider following this project's author,
Charlike Mike Reagent, and :star: the project
to show your :heart: and support.
If you have any how-to kind of questions, please read the Contributing
Guide and Code of Conduct documents.
For bugs reports and feature requests, please create an issue
or ping @tunnckoCore at Twitter.
Project is semantically versioned & automatically released
from GitHub Actions with
Lerna.
Topic | Contact |
---|
Any legal or licensing questions, like private or commerical use | |
For any critical problems and security reports | |
Consulting, professional support, personal or team training | |
For any questions about Open Source, partnerships and sponsoring | |
Table of Contents
(TOC generated by verb using
markdown-toc)
Install
This project requires Node.js >=10.13 (see
Support & Release Policy).
Install it using yarn or
npm.
We highly recommend to use Yarn when you
think to contribute to this project.
$ yarn add ip-filter
API
Generated using jest-runner-docs.
Filter ip
against glob patterns
, using micromatch under the hood, so
options
are passed to it.
Signature
function(ip, patterns, options)
Params
ip
{string} - Accepts only valid IPs by defaultpatterns
{string|array} - Basically everything that micromatch's
second argument can accept.options
{object} - Pass strict: false
if want to validate non-ip
values, options are also passed to micromatch.returns
{string} - a string
or null
If not match returns null
,
otherwise the passed ip
as string.
Examples
const ipFilter = require('ip-filter');
console.log(ipFilter('123.77.34.89', '123.??.34.8*'));
console.log(ipFilter('123.222.34.88', '123.??.34.8*'));
console.log(ipFilter('123.222.33.1', ['123.*.34.*', '*.222.33.*']));
console.log(ipFilter('123.222.34.88', ['123.*.34.*', '!123.222.**']));
console.log(ipFilter('123.222.34.88', ['123.*.34.*', '!123.222.*']));
Examples
const ipFilter = require('ip-filter');
const res = ipFilter('x-koaip', ['*-koaip', '!foo-koa*'], { strict: false });
console.log(res);
const res = ipFilter('x-koa.foo', ['*-koa.*', '!foo-koa.*'], { strict: false });
console.log(res);
back to top
See Also
Some of these projects are used here or were inspiration for this one, others
are just related. So, thanks for your existance!
back to top
Contributing
Guides and Community
Please read the Contributing Guide and Code of
Conduct documents for advices.
For bug reports and feature requests, please join our community
forum and open a thread there with prefixing the title of the thread with the
name of the project if there's no separate channel for it.
Consider reading the
Support and Release Policy
guide if you are interested in what are the supported Node.js versions and how
we proceed. In short, we support latest two even-numbered Node.js release lines.
Support the project
Become a Partner or Sponsor? :dollar: Check the OpenSource
Commision (tier). :tada: You can get your company logo, link & name on this
file. It's also rendered on package's page in npmjs.com and
yarnpkg.com sites too! :rocket:
Not financial support? Okey!
Pull requests,
stars and all kind of
contributions
are always welcome. :sparkles:
Contributors
This project follows the
all-contributors
specification. Contributions of any kind are welcome!
Thanks goes to these wonderful people
(emoji key), consider showing
your support to them:
back to top
License
Copyright (c) 2015-present, Charlike Mike Reagent
<opensource@tunnckocore.com>
& contributors.
Released under the MPL-2.0 License.